$$HEADER$$
<h3>Installing <b>eLua</b> on the STR9 CPU family from ST</h3>
<p>Among the ARM based MCUs available today, the <a href="http://www.st.com/mcu/inchtml-pages-str9.html">STR9</a> CPUs from <a href="http://www.st.com">ST</a> stand up because of a few unique features.
 First, their core is an ARM966-E, as opposed to the very popular ARM7TDMI core. This, together with some cleverly chosen on-chip hardware blocks, allows the CPU to run at 96MHz, which is very fast for a 
 general purpose MCU. The particular CPU I'm using (STR912FAW44) also has 512k of flash (and another bank of 32k flash) and 96k of internal RAM, so you won't be running out of memory anytime soon. It is accompanied by a very good support library, 
 and ST provides a lot of nice tools for STR9, including a graphical tool that you can use to configure the chip exactly how you want.
</p>

 <h3>Prerequisites</h3> 
 <p>Before you'll be able to use <b>eLua</b> on the STR912FAW44 CPU, make sure that:</p>
 <ul>
 <li>you're using Linux, Windows, or any other OS that has support for <a href="http://openocd.berlios.de/web/">OpenOCD</a>.
  You might have a look at our <a href="tut_openocd.html">OpenOCD tutorial</a> before continuing.</li>
 <li>if you're on Windows, you have installed the STR9-comStick support package from the accompanying CD.</li>
 <li>you already have your <b>eLua</b> image for the STR912FAW44 CPU (<a href="building.html">built</a> or <a href="downloads.html">downloaded</a>).</li>
 <li>if you're on Linux, you have super-user (sudoer) access to the system</li>
 </ul>
 <p> The following sections show how to burn <b>eLua</b> on kits based on the STR9 MCU.</p>
 
 <h3>Using <b>eLua</b> on the STR9-comStick</h3>
 <p>When we wrote to ST about <b>eLua</b>, they agreed to send us a <a href="http://www.hitex.com/str9-comstick/">STR9-comStick</a> board to run <b>eLua</b> on it. Thank you very much for your help, once again. This is the board that
 we're going to use through this tutorial.You need OpenOCD to do this. Just follow the instructions from our <a href="tut_openocd.html">OpenOCD tutorial </a>. On the tutorial page you'll also find links to the OpenOCD
 configuration files that I'm using for burning <b>eLua</b> to the comstick.</p>
 <p><b>IMPORTANT NOTE</b>: for some very strange reasons (probably related to the on-board USB to JTAG converter) my comstick does NOT start to execute the code from its internal flash after being
 powered up via the USB cable (faulty reset sequence?). To overcome this, you'll find a special OpenOCD configuration file on my <a href="tut_openocd.html">OpenOCD tutorial</a> page. It is called <i>comrst.cfg</i>,
 and you can use it to reset your comstick after it is powered up.</p>
 
 <h3>Burning <b>eLua</b> to the STR-E912 Olimex boardboard</h3>
 <p>To use eLua on the <a href="http://www.olimex.com/dev/str-e912.html">Olimex STR-E912 development
 board</a> we are using an <a href="http://www.olimex.com/dev/arm-usb-ocd.html">Olimex programmer</a> to flash the image under
 Linux, using OpenOCD.
 <ul>
<li>
Copy the binary image file to the scripts' dir of OpenOCD, renaming it to main.bin:
(you can also have a simbolic link on your OpenOCD script's folder, linked
to the binary image on your build dir but it must be named "main.bin")
</li>
  <h2>$ cp elua_lua_str912faw44.bin /..yourpath../openocd/scripts/main.bin</h2>
<li>
Connect the Olimex programmer cable on the JTAG connector on the STR-E912 
</li>
Run the OpenOCD script as a superuser, from the OpenOCD scripts directory:
</li>
  <h2>$ sudo ./openocd -f comstick.cfg</h2>
<li>
Carefully disconnect the Olimex programmer cable on the JTAG connector on the
STR-E912, as unfortunately you will have to do this many times while using
this combination. The terminal will NOT run if the programmer is connected
to the board.
</li>
</ul>   
  
 
</p> 
 
 <p>That's it! <b>eLua</b> is now programmed in the CPU, so you can start your terminal emulator and enjoy it, as described in <a href="using.html">using eLua</a>.
</p>
$$FOOTER$$

